1. Field
The present application relates generally to the operation of overlay networks, and more particularly, to methods and apparatus for distribution of IP layer routing information in peer-to-peer overlay networks.
2. Background
A network in which member nodes obtain services in the absence of server-based infrastructure is referred to herein as a “peer-to-peer” overlay network. In a peer-to-peer overlay, peer nodes co-operate with each other both to provide services and to maintain the network. Peer-to-peer overlay networks can be built on top of an underlying network, such as a network utilizing the Internet Protocol (IP).
Peer-to-peer networks based on Distributed Hash Tables (DHTs) use a form of key-based routing in which keys are randomly determined by a hash function. This means that two nodes which are adjacent in a peer-to-peer overlay may be in unrelated IP networks, may be behind Network Address Translation (NAT) technology or firewalls, or may have otherwise impaired reachability. One way to improve the routing available in those conditions is to configure tunnels that interconnect portions of the IP layer topology. Once a tunnel has been configured or the preferred route determined however, the information on its availability or the preference must be distributed. One way to distribute the information is to configure a separate service or attempt to re-use IP-layer routing announcements (e.g. BGP, RIP or Proxy ARP). However, these techniques usually are administratively prohibited or the information may be inappropriately propagated.
There are several traditional approaches to solving the above stated problems. One technique provides network topology information associated with an ISP or enterprise to peer-to-peer clients so as to minimize network traversal during media distribution. Such a distribution mechanism is external to the peer-to-peer network, however, and uses a polling mechanism for updates.
Therefore, it would be desirable to have a simple cost effective mechanism that operates to allow communication between nodes of disjoint subnets.